package com.jivesoftware.forum.model;

public class ForumBean
{
	private int moderationDefaultThreadValue;
	private int moderationDefaultMessageValue;
	private int moderationMinThreadValue;
	private int moderationMinMessageValue;
	private long iD;
	private long creationDate;
	private long modifiedDate;
	private String name;
	private String description;

	/**
	 * Returns the unique id of the forum.
	 * 
	 * @return the unique id of the forum.
	 */
	public long getID()
	{
		return iD;
	}

	public void setID(long iD)
	{
		this.iD = iD;
	}

	/**
	 * Returns the name of the forum. Every forum name in the system must be
	 * unique. This restriction allows one to lookup a forum by name as well as
	 * by ID.
	 * 
	 * @return the name of the forum.
	 * @see ForumFactory#getForum(String)
	 */
	public String getName()
	{
		return name;
	}

	/**
	 * Sets the name of a the forum. Every forum name in the system must be
	 * unique. However, this restriction allows one to lookup a forum by name as
	 * well as by ID.
	 * <p>
	 * 
	 * An exception will be thrown if a forum with the same name as the new name
	 * already exists.
	 * 
	 * @param name
	 *            the name of the forum.
	 */
	public void setName(String name)
	{
		this.name = name;
	}

	/**
	 * Returns the description of the forum. A description should normally be no
	 * longer than thirty words so that it can be easily displayed in a list of
	 * forums on a web page.
	 * 
	 * @return the description of the forum.
	 */
	public String getDescription()
	{
		return description;
	}

	/**
	 * Sets the description of the forum. A description should normally be no
	 * longer than thirty words so that it can be easily displayed in a list of
	 * forums on a web page.
	 * 
	 * @param description
	 *            the description of the forum.
	 */
	public void setDescription(String description)
	{
		this.description = description;
	}

	/**
	 * Returns the Date that the forum was created.
	 * 
	 * @return the Date the forum was created.
	 */
	public long getCreationDate()
	{
		return creationDate;
	}

	/**
	 * Sets the creation date of the forum. In most cases, the creation date
	 * will default to when the forum was entered into the system. However, the
	 * creation date needs to be set manually when importing data. In other
	 * words, skin authors should ignore this method since it only intended for
	 * system maintenance.
	 * 
	 * @param creationDate
	 *            the date the forum was created.
	 */
	public void setCreationDate(long creationDate)
	{
		this.creationDate = creationDate;
	}

	/**
	 * Returns the Date that the forum was last modified. In other words, the
	 * date of the most recent message or thread in the forum.
	 * 
	 * @return the Date the forum was last modified.
	 */
	public long getModifiedDate()
	{
		return modifiedDate;
	}

	/**
	 * Sets the date the forum was last modified. In most cases, last modifed
	 * will default to when the forum data was last changed. However, the last
	 * modified date needs to be set manually when importing data. In other
	 * words, skin authors should ignore this method since it only intended for
	 * system maintenance.
	 * 
	 * @param modifiedDate
	 *            the date the forum was modified.
	 */
	public void setModifiedDate(long modifiedDate)
	{
		this.modifiedDate = modifiedDate;
	}

	/**
	 * Returns the default number of moderation points for threads created in
	 * the forum. The default moderation points value can be used in conjunction
	 * with the minimum thread moderation points value to effectively turn
	 * moderation on or off. Consider a default value of 0 and a minimum value
	 * of 1 -- this will mean that new threads will be created below the display
	 * threshold of 1, and must be assigned a moderation point before being
	 * visible.
	 * <p>
	 * 
	 * By default, the minimum and default thread moderation value is 1.
	 * 
	 * @return the default number of moderation points assigned to threads.
	 */
	public int getModerationDefaultThreadValue()
	{
		return moderationDefaultThreadValue;
	}

	/**
	 * Sets the default number of moderation points for threads created in the
	 * forum. The default moderation points value can be used in conjunction
	 * with the minimum thread moderation points value to effectively turn
	 * moderation on or off. Consider a default value of 0 and a minimum value
	 * of 1 -- this will mean that new threads will be created below the display
	 * threshold of 1, and must be assigned a moderation point before being
	 * visible.
	 * <p>
	 * 
	 * By default, the minimum and default thread moderation value is 1.
	 * 
	 * @param value
	 *            default number of moderation points for threads.
	 */
	public void setModerationDefaultThreadValue(int value)
	{
		moderationDefaultThreadValue = value;
	}

	/**
	 * Returns the default number of moderation points for messages created in
	 * the forum. The default moderation points value can be used in conjunction
	 * with the minimum message moderation points value to effectively turn
	 * moderation on or off. Consider a default value of 0 and a minimum value
	 * of 1 -- this will mean that new messages will be created below the
	 * display threshold of 1, and must be assigned a moderation point before
	 * being visible.
	 * <p>
	 * 
	 * By default, the minimum and default message moderation value is 1.
	 * 
	 * @return the default number of moderation points assigned to messages.
	 */
	public int getModerationDefaultMessageValue()
	{
		return moderationDefaultMessageValue;
	}

	/**
	 * Sets the default number of moderation points for threads created in the
	 * forum. The default moderation points value can be used in conjunction
	 * with the minimum thread moderation points value to effectively turn
	 * moderation on or off. Consider a default value of 0 and a minimum value
	 * of 1 -- this will mean that new messages will be created below the
	 * display threshold of 1, and must be assigned a moderation point before
	 * being visible.
	 * <p>
	 * 
	 * By default, the minimum and default message moderation value is 1.
	 * 
	 * @param value
	 *            default number of moderation points for messages.
	 */
	public void setModerationDefaultMessageValue(int value)
	{
		moderationDefaultMessageValue = value;
	}

	/**
	 * Returns the minimum number of moderation points necessary for threads to
	 * be visible in the forum. The default moderation points value can be used
	 * in conjunction with the minimum thread moderation points value to
	 * effectively turn moderation on or off. Consider a default value of 0 and
	 * a minimum value of 1 -- this will mean that new threads will be created
	 * below the display threshold of 1, and must be assigned a moderation point
	 * before being visible.
	 * <p>
	 * 
	 * By default, the minimum and default thread moderation value is 1.
	 * 
	 * @return the minimum number of moderation points for threads to be
	 *         visible.
	 */
	public int getModerationMinThreadValue()
	{
		return moderationMinThreadValue;
	}

	/**
	 * Sets the default number of moderation points necessary for threads to be
	 * visible in the forum. The default moderation points value can be used in
	 * conjunction with the minimum thread moderation points value to
	 * effectively turn moderation on or off. Consider a default value of 0 and
	 * a minimum value of 1 -- this will mean that new messages will be created
	 * below the display threshold of 1, and must be assigned a moderation point
	 * before being visible.
	 * <p>
	 * 
	 * By default, the minimum and default message moderation value is 1.
	 * 
	 * @param value
	 *            the minimum number of moderation points for threads to be
	 *            visible.
	 */
	public void setModerationMinThreadValue(int value)
	{
		moderationMinThreadValue = value;
	}

	/**
	 * Returns the minimum number of moderation points necessary for messages to
	 * be visible in the forum. The default moderation points value can be used
	 * in conjunction with the minimum thread moderation points value to
	 * effectively turn moderation on or off. Consider a default value of 0 and
	 * a minimum value of 1 -- this will mean that new threads will be created
	 * below the display threshold of 1, and must be assigned a moderation point
	 * before being visible.
	 * <p>
	 * 
	 * By default, the minimum and default thread moderation value is 1.
	 * 
	 * @return the minimum number of moderation points for threads to be
	 *         visible.
	 */
	public int getModerationMinMessageValue()
	{
		return moderationMinMessageValue;
	}

	/**
	 * Sets the default number of moderation points necessary for messages to be
	 * visible in the forum. The default moderation points value can be used in
	 * conjunction with the minimum thread moderation points value to
	 * effectively turn moderation on or off. Consider a default value of 0 and
	 * a minimum value of 1 -- this will mean that new messages will be created
	 * below the display threshold of 1, and must be assigned a moderation point
	 * before being visible.
	 * <p>
	 * 
	 * By default, the minimum and default message moderation value is 1.
	 * 
	 * @param value
	 *            the minimum number of moderation points for messages to be
	 *            visible.
	 */
	public void setModerationMinMessageValue(int value)
	{
		moderationMinMessageValue = value;
	}
}
